package object.obj2D.bullet;

import java.util.List;

import object.Collision;
import object.obj3D.Object3D;
import object.obj3D.enemy.Character;
import system.MyCamera;

public abstract class IBullet {
	protected abstract void SetAlpha(float alpha);
	protected abstract void SetBeta(float beta);
	protected abstract void SetDistance(float distance);
	protected abstract float GetAlpha();
	protected abstract float GetBeta();

	protected abstract void Start();
	protected abstract boolean isPlaying();
	protected float m_alpha;
	protected float m_beta;
	protected boolean m_isCollision = false;
	protected int m_collisionType = Collision.COL_DONT_CARE;
	protected float m_distance;
	protected float m_disInc = 0.5f;
	public Object3D character = null;
	
	public int Damage;
	protected float m_transX;
	protected float m_transY;
	protected float m_transZ;
	
	protected float m_dTransX;
	protected float m_dTransY;
	protected float m_dTransZ;
	
	protected int m_iFrameIndex = 0;
	public void CheckCollision(List <Character> character){
		m_collisionType = Collision.CheckCollision(character);
		if(Collision.isCollision()){
			m_distance = Collision.getDistance();
		}
		else m_distance = MyCamera.getzMax();
	}
	public boolean isCollision(){
		return m_isCollision;
	}
	public int getCollisionType(){
		return m_collisionType;
	}
	public void setCollisionType(int collisionType){
		this.m_collisionType = collisionType;
	}
	public void setCollision(boolean isCollision){
		m_isCollision = isCollision;
	}
	public float getDistance(){
		return m_distance;
	}
	public void setDistance(float distance){
		this.m_distance = distance;
	}
	public abstract void Update();
	public abstract void Render();
	
	static void Init(){
		
	}
}
